{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# LSRTM template"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Import modules"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Basic stuff\n",
    "import sys\n",
    "sys.path.append(\"/net/server/homes/sep/gbarnier/code/gpu/acousticIsoOp/test/lib/python/\")\n",
    "import genericIO\n",
    "import SepVector\n",
    "import Hypercube\n",
    "import Acoustic_iso_double\n",
    "import numpy as np\n",
    "import time\n",
    "\n",
    "# Solver library\n",
    "import pyLCGsolver as LCG\n",
    "import pyProblem as Prblm\n",
    "import pyStopperBase as Stopper\n",
    "from sys_util import logger\n",
    "\n",
    "# Plotting library\n",
    "import matplotlib.pyplot as plt\n",
    "import sepPlot"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Wavelet"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "!Wavelet n1=1000 d1=0.008 fund=6. tdelay=1.0 wavelet=ricker2 | Add scale=-1.0 > wlt.H\n",
    "# !Spectra < wlt.H | Graph grid=y max1=30 | Xtpen "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Velocity models"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " \n",
      "------------------------ Model padding program --------------------\n",
      "Original nz = 350 [samples]\n",
      "Original nx = 1700 [samples]\n",
      " \n",
      "zPadMinus = 100 [samples]\n",
      "zPadPlus = 110 [samples]\n",
      "xPadMinus = 100 [samples]\n",
      "xPadPlus = 104 [samples]\n",
      " \n",
      "blockSize = 16 [samples]\n",
      "FAT = 5 [samples]\n",
      " \n",
      "New nz = 570 [samples including padding and FAT]\n",
      "New nx = 1914 [samples including padding and FAT]\n",
      "-------------------------------------------------------------------\n",
      " \n",
      " \n",
      "------------------------ Model padding program --------------------\n",
      "Original nz = 350 [samples]\n",
      "Original nx = 1700 [samples]\n",
      " \n",
      "zPadMinus = 100 [samples]\n",
      "zPadPlus = 110 [samples]\n",
      "xPadMinus = 100 [samples]\n",
      "xPadPlus = 104 [samples]\n",
      " \n",
      "blockSize = 16 [samples]\n",
      "FAT = 5 [samples]\n",
      " \n",
      "New nz = 570 [samples including padding and FAT]\n",
      "New nx = 1914 [samples including padding and FAT]\n",
      "-------------------------------------------------------------------\n",
      " \n",
      " \n",
      "------------------------ Model padding program --------------------\n",
      "Original nz = 350 [samples]\n",
      "Original nx = 1700 [samples]\n",
      " \n",
      "zPadMinus = 100 [samples]\n",
      "zPadPlus = 110 [samples]\n",
      "xPadMinus = 100 [samples]\n",
      "xPadPlus = 104 [samples]\n",
      " \n",
      "blockSize = 16 [samples]\n",
      "FAT = 5 [samples]\n",
      " \n",
      "New nz = 570 [samples including padding and FAT]\n",
      "New nx = 1914 [samples including padding and FAT]\n",
      "-------------------------------------------------------------------\n",
      " \n"
     ]
    }
   ],
   "source": [
    "# True velocity model\n",
    "!/net/server/homes/sep/gbarnier/code/gpu/acousticIsoOp/test/bin/padFileGpuMain zPad=100 xPad=100 model=velocityMarmousi.H data=velocityMarmousi.pad.H\n",
    "\n",
    "# Background velocity model\n",
    "!Smooth rect1=5 rect2=5 < velocityMarmousi.H > velocityMarmousiStart.H\n",
    "!/net/server/homes/sep/gbarnier/code/gpu/acousticIsoOp/test/bin/padFileGpuMain zPad=100 xPad=100 model=velocityMarmousiStart.H data=velocityMarmousiStart.pad.H\n",
    "\n",
    "# True reflectivity \n",
    "!Add velocityMarmousi.H velocityMarmousiStart.H scale=1,-1 > reflectivityTrue.H\n",
    "!/net/server/homes/sep/gbarnier/code/gpu/acousticIsoOp/test/bin/padFileGpuMain zPad=100 xPad=100 model=reflectivityTrue.H data=reflectivityTrue.pad.H\n",
    "\n",
    "# Starting reflectiviy\n",
    "!Add reflectivityTrue.pad.H scale=0 > modelStartLsrtm.pad.H"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Generate data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Initialize nonlinear operator"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "nts=1000\r\n",
      "dts=0.008\r\n",
      "sub=8\r\n",
      "nz=570\r\n",
      "nx=1914\r\n",
      "zPadMinus=100\r\n",
      "zPadPlus=110\r\n",
      "xPadMinus=100\r\n",
      "xPadPlus=104\r\n",
      "dz=0.01\r\n",
      "dx=0.01\r\n",
      "fMax=20\r\n",
      "zSource=10\r\n",
      "xSource=850\r\n",
      "nShot=1\r\n",
      "spacingShots=1\r\n",
      "depthReceiver=10\r\n",
      "nReceiver=1700\r\n",
      "dReceiver=1\r\n",
      "oReceiver=1\r\n",
      "saveWavefield=0\r\n",
      "wavefieldShotNumber=0\r\n",
      "blockSize=16\r\n",
      "fat=5\r\n",
      "nGpu=8\r\n"
     ]
    }
   ],
   "source": [
    "# Note: you need a \"dummy arg\" for the first argument to replace what would be the executable\n",
    "args=[\"dummy arg\",\"vel=velocityMarmousi.pad.H\",\"model=wlt.H\",\"par=parPythonTest.p\",\"sources=wlt.H\",\"nGpu=1\"]\n",
    "modelDouble,dataDouble,velDouble,parObject,sourcesVector,receiversVector=Acoustic_iso_double.nonlinearOpInitDouble(args)\n",
    "\n",
    "# Printing parameter file for reference\n",
    "!cat parPythonTest.p"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Create nonlinear object"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "nonlinearOp=Acoustic_iso_double.nonlinearPropShotsGpu(modelDouble,dataDouble,velDouble,parObject,sourcesVector,receiversVector)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Read wavelet"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "modelFile=parObject.getString(\"sources\")\n",
    "modelFloat=genericIO.defaultIO.getVector(modelFile,ndims=3)\n",
    "modelDMat=modelDouble.getNdArray()\n",
    "modelSMat=modelFloat.getNdArray()\n",
    "modelDMat[:]=modelSMat"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Nonlinear forward (generate seismic data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Deallocating fwd\n"
     ]
    }
   ],
   "source": [
    "# Conventional nonlinear operator\n",
    "nonlinearOp.forward(False,modelDouble,dataDouble);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Plot data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7eff9edd5eb8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Convert data to 2D float \n",
    "dataFloat2D=SepVector.getSepVector(Hypercube.hypercube(axes=[dataDouble.getHyper().axes[0],dataDouble.getHyper().axes[1]]))\n",
    "dataFloat2DNd=dataFloat2D.getNdArray()\n",
    "dataDoubleNd=dataDouble.getNdArray()\n",
    "dataFloat2DNd[:]=dataDoubleNd\n",
    "\n",
    "# Plot forward\n",
    "sepPlot.Grey(plt,dataFloat2D,label1=\"Time [s]\",label2=\"Receivers [km]\",title=\"Seismic data\").output()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Run inversion"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Read starting model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Read starting velocity model\n",
    "modelStartLsrtmFloat=genericIO.defaultIO.getVector(\"modelStartLsrtm.pad.H\",ndims=2)\n",
    "modelStartLsrtmFloatNd=modelStartLsrtmFloat.getNdArray()\n",
    "\n",
    "# Convert to double\n",
    "modelStartLsrtmDouble=SepVector.getSepVector(modelStartLsrtmFloat.getHyper(),storage=\"dataDouble\")\n",
    "modelStartLsrtmDoubleNd=modelStartLsrtmDouble.getNdArray()\n",
    "modelStartLsrtmDoubleNd[:]=modelStartLsrtmFloatNd"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Initialize Born operator"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "nts=1000\r\n",
      "dts=0.008\r\n",
      "sub=8\r\n",
      "nz=570\r\n",
      "nx=1914\r\n",
      "zPadMinus=100\r\n",
      "zPadPlus=110\r\n",
      "xPadMinus=100\r\n",
      "xPadPlus=104\r\n",
      "dz=0.01\r\n",
      "dx=0.01\r\n",
      "fMax=20\r\n",
      "zSource=10\r\n",
      "xSource=850\r\n",
      "nShot=1\r\n",
      "spacingShots=1\r\n",
      "depthReceiver=10\r\n",
      "nReceiver=1700\r\n",
      "dReceiver=1\r\n",
      "oReceiver=1\r\n",
      "saveWavefield=0\r\n",
      "wavefieldShotNumber=0\r\n",
      "blockSize=16\r\n",
      "fat=5\r\n",
      "nGpu=8\r\n"
     ]
    }
   ],
   "source": [
    "args=[\"dummy arg\",\"vel=velocityMarmousiStart.pad.H\",\"sources=wlt.H\",\"par=parPythonTest.p\",\"model=modelStartLsrtm.pad.H\"]\n",
    "modelDouble,dataDouble,velDouble,parObject,sourcesVector,sourcesSignalsVector,receiversVector=Acoustic_iso_double.BornOpInitDouble(args)\n",
    "\n",
    "# Printing parameter file for reference\n",
    "!cat parPythonTest.p"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Create Born operator"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "BornOp=Acoustic_iso_double.BornShotsGpu(modelDouble,dataDouble,velDouble,parObject,sourcesVector,sourcesSignalsVector,receiversVector)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Construct FWI problem"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Create L2-norm linear problem\n",
    "model_vec=modelStartLsrtmDouble.clone()\n",
    "model_vec.zero()\n",
    "L2Prob=Prblm.ProblemL2Linear(model_vec,dataDouble,BornOp)\n",
    "\n",
    "# Create stopper\n",
    "niter=10\n",
    "Stop=Stopper.BasicStopper(niter=niter)\n",
    "\n",
    "# # Create solver\n",
    "LCGsolver=LCG.LCGsolver(Stop,logger=logger(\"test.log\"))\n",
    "LCGsolver.setDefaults(iter_buffer=None,iter_sampling=1)\n",
    "\n",
    "# # Run solver\n",
    "# LCGsolver.run(L2Prob)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
